Selective processing of damaged packets

ABSTRACT

When a damaged packet has been forwarded to or towards a destination terminal, a forwarding device or a destination terminal will determine if the packet is damaged, and if it is damaged, determine whether the content of the packet is time-sensitive. If the content is time-sensitive, the damage to the packet is assessed, and if possible, an attempt to repair the damage is made. Repair may include correcting the damaged data or packet, deciding to use the damaged data because the damage is minimal, or replacing all or a part of the damaged data with a normalized set of data. If repair is not possible and replacement of the damaged portion is not available or desirable, the packet is discarded.

FIELD OF THE INVENTION

The present invention relates to packet-based communications, and in particular to selectively forwarding and processing packets that are damaged, based on the type of content carried in the packet.

BACKGROUND OF THE INVENTION

In the emerging world of packet-based communications, packets are increasingly being used to transport content of many types, including streaming media, which needs to be delivered in real time. As new technology, such as wireless local area networks (WLANs) and other access technologies where the transmission path is subject to disturbances, become more prominent, the traditional rules for handling damaged packets may not be applicable for certain types of packet content.

Within the Internet Protocol and other link level protocols, packets having a checksum error, which is indicative of the packet being damaged in any fashion, are immediately discarded. In a wireless WLAN environment, many packets that are damaged may have only a relatively small number of actual bit errors within the packet. If the packet content represents data, such as a bank balance, discarding the damaged packet and requesting a retransmission of the packet is necessary, because retransmission of the packet is the only viable method for assuring that the data is accurately transferred. Further, the delay in receiving the data due to retransmission has minimal if any negative impact on the data transfer.

In contrast, if the damaged packet is transporting streaming media that should be delivered in real time, such as audio, voice, or video, the damaged bits within the packet will certainly have a negative impact, but the impact of a few errant bits may not be catastrophic. Since the data is being used in real time, retransmission is relatively useless, because the order in which the packets arrive and their respective delays are critical in using and delivering the content. As such, there is a need for new techniques in handling packets carrying time-sensitive information wherein data integrity is less important than timely delivery.

SUMMARY OF THE INVENTION

The present invention facilitates the processing of damaged packets, when the packets are carrying a certain type of content such as streaming media or other time-sensitive information where data integrity is less important than timely delivery. Once a packet is received, a determination is made as to whether the packet has been damaged. If the packet is damaged, an attempt is made to determine the type of content being carried by the packet and then a decision is made as to whether to forward the packet toward its destination or discard the packet, based on the type of content and potentially the integrity of the packet. When a damaged packet has been forwarded to or towards a destination terminal, the forwarding device or the destination terminal will determine if the packet is damaged, and if it is damaged, determine whether the content of the packet is time-sensitive. If the content is time-sensitive, the damage to the packet is assessed, and if possible, an attempt to repair the damage is made. Repair may include correcting the damaged data or packet, deciding to use the damaged data because the damage is minimal, or replacing all or a part of the damaged data with a normalized, interpolated, or extrapolated set of data. If repair is not possible and replacement of the damaged portion is not available or desirable, the packet is discarded.

Packet forwarding may be provided in any number of packet forwarding devices ranging from edge devices facilitating communications with originating or destination terminals over an access network, to intermediate devices through which the packet is routed within a packet network coupling the access networks. Each of the forwarding devices as well as the destination terminal may provide the packet processing used to correct the damaged packets or the data therein. The detection of damage and determination of content type may be made in the same or different devices acting in coordination with each other for a given packet. Once a damaged packet has been discovered and a decision has been made to route the packet toward the destination terminal, the packet may be forwarded along a normal path as if it were undamaged, or sent over an alternative path that is better suited for handling damaged packets. Any corrected, damaged, or replacement data will be used by the destination terminal as if it were undamaged, when the damaged packet has been processed in an attempt to repair the damage. In an alternative embodiment, the packet may be modified to include an indication that the packet is damaged to assist devices in routing or processing the packet.

Those skilled in the art will appreciate the scope of the present invention and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.

BRIEF DESCRIPTION OF THE DRAWING FIGURES

The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the invention, and together with the description serve to explain the principles of the invention.

FIG. 1 is a block representation of a communication environment according to one embodiment of the present invention.

FIG. 2 is a flow diagram outlining a basic process for selectively forwarding damaged packets according to one embodiment of the present invention.

FIGS. 3A-3B illustrate a flow diagram outlining a basic process for selectively processing damaged packets in an attempt to repair the damage according to one embodiment of the present invention.

FIG. 4 is a block representation of a forwarding device according to one embodiment of the present invention.

FIG. 5 is a block representation of a destination terminal according to one embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the invention and illustrate the best mode of practicing the invention. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the invention and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.

Provided herein, damaged packets are selectively forwarded based on the type of content carried therein and are subsequently received and processed to repair the damage. In a preferred embodiment, packets carrying content in which the delivery is time-sensitive, such as content sensitive to latency, jitter, order of packet arrival, or other parameters critical to proper reconstruction of streaming or real-time content, may be forwarded even though they are damaged, wherein packets in which the integrity of the content is more critical than the timeliness of delivery are dropped. The entity at the destination for the packet or some intermediate entity along the path will then have the option to attempt to repair the damage by correcting the damaged packet or data, deciding to use the damaged packet or data, or replacing all or a part of the damaged data in the damaged packet.

With reference to FIG. 1, a communication environment 10 is illustrated in which packets may be selectively forwarded and subsequently repaired when they are damaged instead of being discarded, based on the type of content carried within the packet. The communication environment 10 includes a packet network 12 and multiple access networks 14, which cooperate to allow an originating terminal 16 to deliver packets to a destination terminal 18. The packet network 12 and the access networks 14 will either include or be associated with any number of packet forwarding devices, which may include edge devices 20 that connect the access networks 14 to the packet network 12 and any number of intermediate devices 22, which effectively forward the packets throughout the packet network 12 from one edge device 20 to another. The packet network 12 may also include an alternate processing device 24, which may optionally be implemented to process or forward damaged packets in a defined fashion when the other packet forwarding devices are not equipped to provide such functions. The alternate processing device 24 is described later in the description.

The communication environment 10 may take numerous forms, wherein the various packet forwarding devices may facilitate wireline or wireless communications between each other as well as with the originating and destination terminals 16, 18. For example, the access network 14 may be a cellular network or a wireless local area network. In such an embodiment, the edge device 20 may be a cellular network base station or mobile switching center, as well as a wireless local area network (WLAN) modem or like access point. Further, the edge devices 20 may be implemented in various wireline-type devices, such as routers, firewalls, and servers. Those skilled in the art will recognize wireless implementations of the same. The intermediate devices 22 may take the form of a router, switch, or other entity acting as a forwarding liaison between two other packet forwarding devices. The alternate processing device 24 may take similar forms.

Depending on the embodiment, the packets transported between the originating terminal 16 and the destination terminal 18 may include content of various types, including data or streaming media, such as audio, video, and voice. Although those skilled in the art will recognize other types of content, the content of a packet can normally be broken into two types. A first type is data whose integrity cannot be compromised. As such, the integrity of the content takes priority. The second type of content, such as streaming media, is more sensitive to the time and order in which it is received than the integrity of the content itself. Although content integrity is important, packets that are lost or discarded due to damage may prove more problematic than a few corrupt bits. Origins or destinations of content are not limited to the edges of the access networks and can exist within the packet network in devices such as media servers that are streaming or capturing content as appropriate.

In contrast to the current practice of discarding any damaged packet, the packet forwarding devices operate to forward damaged packets whose content is of the type which is less sensitive to integrity and more sensitive to timely delivery. As a packet travels from the originating terminal 16 to the destination terminal 18, various ones of the packet forwarding devices will be configured to determine whether a packet has been damaged or otherwise corrupted. Instead of automatically dropping the packet, the packet forwarding device will attempt to determine the type of packet and either drop the packet in traditional fashion or forward the packet toward the destination terminal 18. In this manner, damaged packets having a select type of content may be forwarded in sequential fashion through the packet network 12 and on to the destination terminal 18. In one embodiment, certain packet forwarding devices will systematically analyze the packet for damage, and determine whether to forward the packet based on the content therein. The packet may be forwarded without change or may be encapsulated in a new packet, which is then forwarded. Depending on the damage to the packet, it may be possible to simply forward the packet unchanged (in this case the packet may have an implicit indication that it is damaged in the form of the layer 2, IP and UDP checksums), thus ignoring the damage, or encapsulate the damaged packet as payload in a new undamaged packet. Alternatively, the first packet forwarding device to detect damage may modify the packet to include some type of explicit indicia indicating the packet has been damaged and forward the packet on toward the destination terminal 18, wherein subsequent packet forwarding devices will be able to determine that the packet is damaged but should be forwarded to the destination terminal 18 based on the damage indicia.

Any of the forwarding devices, as well as the destination terminal 18, may receive a damaged packet that was forwarded with the knowledge that the packet was damaged, and may attempt to repair the damage when the content is time-sensitive. Repairing the packet may include correcting the damaged data, deciding to use the damaged data, or replacing all or part of the damaged data. Once corrected, a forwarding device implementing such repairs would forward the packet toward the destination terminal 18 as if it were not damaged. Alternatively, if the destination terminal 18 is the entity attempting to repair the damage, the data resulting from the repair attempt would be used as if there were no damage. Accordingly, the destination terminal 18 may use damaged data, corrected data, or replacement data, depending on the type of repair provided during forwarding or at the destination terminal 18.

With reference to FIG. 2, an exemplary process for forwarding packets according to one embodiment of the present invention is illustrated. Initially, the packet forwarding device will receive a packet en route to the destination terminal 18 (step 100) and determine if the packet is damaged (step 102). The damage to the packet may be in the header, payload, or both. One technique for determining damage is to compare the packet with one or more of the checksums included within the packet. Notably, multiple checksums may be provided in the packet, wherein different checksums correspond to various protocol layers. When determining if a packet is damaged, the checksums at the currently used forwarding layer may be checked, as well as checksums at other layers. Those skilled in the art will recognize that any technique in which a packet can be analyzed for error may be used to determine that the packet is damaged.

If the packet is damaged (step 104), and there is damage in the header (step 106), a determination is made to see if the damage in the header is correctable (step 108). If the damage in the header cannot be corrected, the packet is discarded (step 110). If the header can be corrected, the header is corrected (step 112). If the header is not damaged (step 106) or a damaged header has been corrected, the next step depends on whether or not the payload is damaged (step 114). If there is no damage to the payload of the packet (step 114), the packet is forwarded toward its destination (step 116). If the payload is damaged (step 114), the packet is analyzed to determine the type of content carried in the packet (step 118).

The type of content carried in the packet may be detected using numerous techniques. For example, the type of protocol used for transport may be determinative of the content type. If the Real Time Protocol (RTP) is used, for example, the content type will likely be a streaming media type, which is more sensitive to timely delivery than data integrity. Although RTP is a Layer 3 protocol, the packet forwarding devices operating to forward the packets at a Layer 1 or Layer 2 protocol level may analyze other layers outside of the layer currently being used, in order to detect or otherwise determine the type of content carried in the packet. Further, certain protocols may include indicia indicative of the content type in the packet header or payload and at any protocol layer. Thus, the packet forwarding device may be configured to analyze the packet for indicia indicative of content type. Further, when information in the header is insufficient to determine content type, an analysis of the configuration of the data carried within the packet could also be used to determine content type. Those skilled in the art will recognize that the content type may be determined by analyzing any part of the packet and looking at any type of protocol used at any layer in the protocol stack to assist in determining content type, regardless of the layer in which the packet is currently being processed.

If the content type cannot be determined due to the damage to the packet, or if the content is not of the first type, which is sensitive to timely delivery, or where integrity is imperative (step 120), the packet is discarded (step 110) and the process repeats with the next incoming packet. If the content is of a type that is sensitive to timely delivery and less sensitive to integrity (step 120), the packet may optionally be encapsulated or marked as damaged by providing indicia indicative of the packet being damaged (steps 122A and 122B) and then the packet is forwarded toward the destination terminal 18 (step 116). Notably, marking damaged packets is optional. When damaged packets are not marked, each subsequent forwarding device will simply provide the above process, alone or in combination with another device, to determine whether the packet is damaged and whether the damaged packet should be forwarded toward the destination terminal 18. If the packets are marked, subsequent forwarding devices will preferably be able to detect the indicia used for marking and continue the forwarding process. Otherwise, the above process is repeated. If the damaged packet is encapsulated, subsequent forwarding devices will view the errant packet as the proper payload for the new packet and any repair will be made to the data in the encapsulated packet.

Turning now to FIGS. 3A-3C, an exemplary process for handling damaged packets that were forwarded toward the destination terminal 18 knowing that the packets were damaged is shown. Initially, the packets are received (step 200) and analyzed to determine if they are damaged (step 202). If a packet is damaged (step 204), the type of content carried by the packet is determined, in a fashion similar to those described above (step 206). If the content is not of a first type, which is sensitive to timely delivery (step 208), the packet is discarded (step 210). If the content is of the first type, which is sensitive to timely delivery (step 208), the damage to the packet is assessed (step 212), and one or more repair techniques are used to process the damaged packet, and in particular the content carried by the packet.

The attempts to repair the damage may take the following forms. First, the damaged data may be analyzed in light of the type of content and an attempt to correct the damaged data may be made (step 214). Second, the damaged data may be analyzed and a determination is made to use the damaged data because the damage is minor (step 216). Such a decision may be based on knowledge that the damage will not affect the use of the data in light of the content or an ability to correct the damage is not available. Third, the damaged data may be replaced in whole or in part with nominal data, which is known to minimize the impact of a lost or damaged packet, or interpolated (or extrapolated) data determined from other received data (step 218). As such, the replaced data is used as actual data by the destination terminal 18. For example, if the damaged data is voice content, the damaged data may be replaced by silence or a desirable tone, which is acceptable for providing to the user at the destination terminal 18. Alternatively, an analysis of preceding and subsequent data surrounding the damage may be used to effectively interpolate new data to use in replacing the damaged data. The surrounding data may be found within the damaged packet or in other packets. Again, the processing to repair the damage associated with the packet may include one or more of the above techniques, as well as others deemed appropriate by those skilled in the art.

Once the repair processing has been provided, subsequent processing depends on the location of the repair processing. If the repair processing is provided in the destination terminal 18 (FIG. 3B), the destination terminal 18 may simply use the corrected, damaged, or replacement data as if it were properly received data (step 220). If the repair processing takes place in a packet forwarding device (FIG. 3C), the processed packet is forwarded with the corrected, damaged, or replacement data towards the destination terminal 18 (step 222). In this instance, the forwarded packet may or may not include indicia indicative of the initially transmitted data being damaged, or the fact that a repair of the packet has been made or attempted.

When receiving a packet that is not damaged (step 204), the processing of the packet will again depend on whether processing takes place at the destination terminal 18 or at one of the forwarding devices. If the processing takes place at the destination terminal 18 (FIG. 3B), the data in the packet is simply used as necessary (step 224). If the processing takes place at a packet forwarding device (FIG. 3C), the packet is forwarded toward the destination terminal in typical fashion (step 226).

The functionality described above may be distributed among multiple devices, wherein a first packet forwarding device, such as the intermediate device 22 or edge device 20, may determine that the packet is damaged, and then forward the packet to the alternate processing device 24 to determine whether the damaged packet should be forwarded toward the destination terminal 18 or discarded. Processing for repair may be distributed in a similar fashion. In addition to distributed processing, the packet forwarding devices may use alternate routes for routing damaged packets that should be forwarded toward the destination terminal 18 even though they are damaged. Using alternate routes is beneficial when normal routes may not include packet forwarding devices capable of forwarding damaged packets. As such, the alternate routes may be those routes in which the packet forwarding devices are capable of selectively forwarding damaged packets of the first type.

Turning now to FIG. 4, a packet forwarding or processing device is illustrated according to one embodiment of the present invention. The packet forwarding device will typically include a control system 26 having memory 28 sufficient for storing software 30 configured to provide the above functionality. The control system 26 is also associated with one or more communication interfaces 32, depending on the configuration of the packet forwarding device and its position within the communication environment 10. For example, if the packet forwarding device is an edge device 20, the communication interfaces 32 may include a first interface capable of receiving and transmitting packets via the packet network 12, and a second interface for facilitating communications with the originating or destination terminal 16, 18 via an appropriate access network 14. The second communication interface 32 could be a cellular interface, WLAN interface, or wireline interface of various configurations. A packet forwarding device configured as an intermediate device 22 or alternate processing device 24 may have one or more communication interfaces 32 configured to transmit packets back and forth between other intermediate devices 22 and alternate processing devices 24, as well as the edge devices 20. As previously described, the software providing the functionality for determining packet damage, determining what content is being transported, and repairing damaged packets can be distributed in multiple coordinating devices, all of which may have the basic structure illustrated in FIG. 4.

With reference to FIG. 5, a destination terminal 18 is illustrated according to one embodiment of the present invention. The destination terminal 18 will typically include a control system 34 having memory 36 sufficient for storing software 38 configured to provide the above-described functionality. The control system 34 is also associated with one or more communication interfaces 40, depending on the configuration of the destination terminal 18 and its position within the communication environment 10. For example, if the destination terminal 18 is placed as illustrated in FIG. 1, the communication interface or interfaces 40 will be capable of receiving and transmitting packets via the access network 14 to and from an associated edge device 20. The communication interface 40 could be a cellular interface, WLAN interface, or wireline interface of various configurations. The destination terminal 18 may also include a user interface 42 to facilitate voice, audio, video, or data sessions with the user.

Although this disclosure has been described with reference to certain embodiments and generally associated methods, alterations and permutations of these embodiments and methods may become apparent through the teachings of this disclosure. Accordingly, the above description of example embodiments does not define or constrain this disclosure. Other changes, substitutions, improvements, modifications, and alterations are possible without departing from the spirit and scope of this disclosure, as defined by the following claims. 

1. A method for selectively processing damaged packets comprising: a) receiving a damaged packet forwarded from a device, which determined the damaged packet was damaged; b) determining if the damaged packet has a first type of content; and c) if the damaged packet has the first type of content, processing the damaged packet to address damage associated with the damaged packet.
 2. The method of claim 1 wherein processing the damaged packet comprises correcting at least a portion of the damage associated with the packet.
 3. The method of claim 1 wherein processing the damaged packet comprises determining to accept the damage associated with the packet, such that damaged data is accepted as actual data for use.
 4. The method of claim 1 wherein processing the damaged packet comprises replacing at least a portion of the damage associated with the packet.
 5. The method of claim 1 wherein the damaged packet is received en route to a destination device from an originating device and further comprising forwarding the damaged packet toward the destination device after processing the damaged packet to address the damage.
 6. The method of claim 1 further comprising using content of the damaged packet after processing the damaged packet to address the damage.
 7. The method of claim 1 wherein when the damaged packet does not have the first type of content, further comprising discarding the damaged packet.
 8. The method of claim 1 further comprising determining the damaged packet is damaged.
 9. The method of claim 8 wherein determining the damaged packet is damaged comprises checking an integrity of the damaged packet against an included checksum.
 10. The method of claim 9 wherein the damaged packet is being forwarded at one protocol layer and the checksum is provided at a different protocol layer.
 11. The method of claim 1 wherein the first type of content is content in which delivery is time sensitive.
 12. The method of claim 1 wherein the first type of content is voice content.
 13. The method of claim 1 wherein the first type of content is video content.
 14. The method of claim 1 wherein the first type of content is audio content.
 15. The method of claim 1 wherein the first type of content is streamed media.
 16. The method of claim 1 wherein determining the damaged packet has the first type of content comprises identifying a protocol being used to transport the content as one associated with the first type of content.
 17. The method of claim 16 wherein the protocol being used to transport the content is at a layer different than that in which the damaged packet is being forwarded.
 18. A system for selectively processing damaged packets comprising: a) at least one communication interface; and b) a control system associated with the at least one communication interface and adapted to: i) receive a damaged packet forwarded from a device, which determined the damaged packet was damaged; ii) determine if the damaged packet has a first type of content; and iii) if the damaged packet has the first type of content, process the damaged packet to address damage associated with the damaged packet.
 19. The system of claim 18 wherein to process the damaged packet, the control system is adapted to correct at least a portion of the damage associated with the packet.
 20. The system of claim 18 wherein to process the damaged packet, the control system is adapted to determine to accept the damage associated with the packet, such that damaged data is accepted as actual data for use.
 21. The system of claim 18 wherein to process the damaged packet, the control system is adapted to replace at least a portion of the damage associated with the packet.
 22. The system of claim 18 wherein the damaged packet is received en route to a destination device from an originating device, and the control system is adapted to forward the damaged packet toward the destination device after the damaged packet is processed to address the damage.
 23. The system of claim 18 wherein the control system is adapted to use content of the damaged packet after the damaged packet is processed to address the damage.
 24. The system of claim 18 wherein when the damaged packet does not have the first type of content, the control system is adapted to discard the damaged packet.
 25. The system of claim 18 wherein the control system is adapted to determine the damaged packet is damaged.
 26. The system of claim 25 wherein to determine the damaged packet is damaged, the control system is adapted to check an integrity of the damaged packet against an included checksum.
 27. The system of claim 26 wherein the damaged packet is being forwarded at one protocol layer and the checksum is provided at a different protocol layer.
 28. The system of claim 18 wherein the first type of content is content in which delivery is time sensitive.
 29. The system of claim 18 wherein the first type of content is voice content.
 30. The system of claim 18 wherein the first type of content is video content.
 31. The system of claim 18 wherein the first type of content is audio content.
 32. The system of claim 18 wherein the first type of content is streamed media.
 33. The system of claim 18 wherein to determine the damaged packet has the first type of content, the control system is further adapted to identify a protocol being used to transport the content as one associated with the first type of content.
 34. The system of claim 33 wherein the protocol being used to transport the content is at a layer different than that in which the damaged packet is being forwarded.
 35. A system for selectively processing damaged packets comprising: a) means for receiving a damaged packet forwarded from a device, which determined the damaged packet was damaged; b) means for determining if the damaged packet has a first type of content; and c) means for processing the damaged packet to address damage associated with the damaged packet, if the damaged packet has the first type of content.
 36. The system of claim 35 wherein the means for processing the damaged packet comprises means for correcting at least a portion of the damage associated with the packet.
 37. The system of claim 35 wherein the means for processing the damaged packet comprises means for determining to accept the damage associated with the packet, such that damaged data is accepted as actual data for use.
 38. The system of claim 35 wherein the means for processing the damaged packet comprises means for replacing at least a portion of the damage associated with the packet. 